package com.sicnu.resources.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 资源类型枚举类，定义了不同的资源类型及其描述。
 * @author 怨九己
 */
@Getter
@AllArgsConstructor
public enum ResourceTypeEnum {

    /**
     * 视频资源类型。
     */
    VIDEO("video", "视频"),
    /**
     * 图片资源类型。
     */
    IMAGE("image", "图片"),
    /**
     * 文本文档资源类型。
     */
    TEXT("text", "文本文档"),
    /**
     * 未知类型资源类型。
     */
    UNKNOWN("unknown", "未知类型");

    /**
     * -- GETTER --
     *  获取资源类型代码。
     */
    private final String code;
    /**
     * -- GETTER --
     *  获取资源类型描述。
     */
    private final String type;

    /**
     * 根据code获取desc
     *
     * @param code 资源类型代码
     * @return 返回资源类型中文描述
     */
    public static String getTypeByCode(String code) {
        for (ResourceTypeEnum resourceType : ResourceTypeEnum.values()) {
            if (resourceType.getCode().equalsIgnoreCase(code)) {
                return  resourceType.getType();
            }
        }
        return ResourceTypeEnum.UNKNOWN.getType();
    }
    /**
     * 根据desc获取code
     * @param type 资源类型中文描述
     * @return 返回资源类型英文代码
     */
    public static String getCodeByType(String type) {
        for (ResourceTypeEnum resourceType : ResourceTypeEnum.values()) {
            if (resourceType.getType().equalsIgnoreCase(type)) {
                return  resourceType.getCode();
            }
        }
        return ResourceTypeEnum.UNKNOWN.getCode();
    }
}